<急> JSP 中 EL表达式嵌套问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:31:18
现在我有一对象user 。
想要在页面是上使用 ${user.isp==1?"<a>":"<b>"}
<a> 处想要使用 ${user.name}
<b> 处想要使用${user.account}
但是如果嵌套起来 ${user.isp==1?"${user.name}":"${user.account}"}
就显示表达式字母 而 无法显示表达式结果。
要用EL实现这个效果应该怎么做呀,大家帮帮忙。
${user.isp==0?"<a href='user.do?id=<c>&isUpdate=1'>编辑</a>":"<a href='user.do?id=<d>&isUpdate=0'>查看</a>"}
这里的 <c> 和 <d> 处呢 ? 使用 user.id 和 ${user.id} 都无法显示结果。

jsp中el表达式的使用需要在page中设置isELIgnored=true。

在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的isELIgnored属性用来指定是否忽略。
格式为:
<%@ page isELIgnored="true|false"%>
如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000 % 20}</p>在isELIgnored="true"时输出为${2000 % 20},而isELIgnored="false"时输出为100。
Web容器默认isELIgnored="false"。

${user.isp==1 ? user.name : user.account}
----------------------
问题有些复杂

${user.isp==0? ("<a href='user.do?id="+user.id + "<c>&isUpdate=1'>编辑</a>" ): ("<a href='user.do?id="+ user.id +"&isUpdate=0'>查看</a>")}

用字符串联接 不过如果类型不对,会出异常:
这种问题的一般都是用JSTL的选择标签做的.
要用EL JSTL一定也要会用的

<c:choose>
<c:when test="${user.isp==0}">
<a href='user.do?id=${user.id}&isUpdate=1'>编辑</a> </c:when>